<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script type="module">
	// 1- 基本用法
	// 通过export 导出的，需要通过{}进行包裹，导出的名字与引入的名字相同。
	// import {a,b,c,fn,run,obj} from "./module/mo1.js";
	// console.log(a,b,c,fn,run,obj);
	
	// 2- 避免冲突
	// import {a,b,c as moc} from "./module/mo1.js";
	// import {a as mo2a,b as mo2b,c} from "./module/mo2.js";
	// console.log(a,b,c);// 1 2 300
	// console.log(moc,mo2a,mo2b);// 3 100 200
	
	// 3- 模块化导出的数据不允许直接修改
	// import {num,setNum} from "./module/mo3.js";
	// console.log(num);// 100
	// setNum(300);
	// console.log(num);// 300
	
	// 4- 命名空间
	// import * as suibian from "./module/mo4.js";
	// console.log(suibian.a)
	// console.log(suibian.b)
	// console.log(suibian.c)
	// console.log(suibian.d)
	// console.log(suibian.e)
	// console.log(suibian.f)
	
	// 5-先定义再导出
	// import suibian,{a,cc} from "./module/mo5.js"
	// console.log(a,cc,suibian);
	
	// 6- 默认导出
	// import suibian from "./module/mo6.js";
	//
	// console.log(suibian);
	
	// 7- 混合导出
	// import suibian,{a} from "./module/mo7.js";
	//
	// console.log(a,suibian.a);// 1 1
	
	// 8- 注意
	// 注意1：from右侧只允许是字符串，不允许是常量变量
	// let str = "./module/mo8.js"
	// import {a,b} from str;
	// console.log(a,b);// 1 2
	
	// 注意2：只允许写在全局
	// {
	// 	import {a,b} from "./module/mo8.js";
	// }
	// function fn(){
	// 	import {a,b} from "./module/mo8.js";
	// }
	
	// 9- 动态引入
	// 1
	// const mo9 = import("./module/mo9.js");
	// mo9.then(value=>{
	// 	console.log(value.a);// 1
	// 	console.log(value.b);// 2
	// 	console.log(value.default);// 3
	// })
	
	// mo9.then(({a,b})=>{
	// 	console.log(a,b);
	// })
	
	// (async function(){
	// 	// const mo9 = await import("./module/mo9.js");
	// 	// console.log(mo9.a);
	// 	// console.log(mo9.b);
	// 	// console.log(mo9.default);
	//
	// 	// const {a,b,default:c} = await import("./module/mo9.js");
	// 	// console.log(a,b,c)
	//
	// })();
	
	// 10- 直接import
	// import "./module/mo10.js";
	// console.log("abcdefg".last());
	
	// 11- 模块化只能够执行一次。
	import obj,{a} from "./module/mo11.js";
	import obj2,{a as aa} from "./module/mo11.js";
	import obj3,{a as aaa} from "./module/mo11.js";
	import obj4,{a as aaaaa} from "./module/mo11.js";
	
	console.log(obj === obj2);
	console.log(obj === obj3);
	console.log(obj === obj4);
	obj.userName = "zhangsan";
	console.log(obj2,obj3,obj4);
</script>
</html>